<?php
/*
 * Created by generator
 *
 */

class saison_model extends Model {
	
	/**
	* Identifiant
	* @var int
	*/
	var $saiidsai;

	/**
	* Nom donné à la saison
	* @var varchar(50)
	*/
	var $sailbnom;

	/**
	* Date de début de la saison
	* @var date
	*/
	var $saidtdeb;

	/**
	* Date de fin de la saison
	* @var date
	*/
	var $saidtfin;

	/**
	* Date de fin de la saison
	* @var date
	*/
	var $sainbsem;
	
	/**
	 * Constructeur
	 */
	function saison_model(){
		parent::Model();
		$this->load->helper('saison');
		$this->load->helper('utils');
		
	}
	
	/************************************************************************
	 * Methodes de mise a jour a partir de la base de donnees
	 ************************************************************************/

	/**
	 * Cree une nouvelle instance a partir d'un enregistrement de base de donnees
	 */
	static function saison_modelFromRow($row){
		if( $row == null ) {
			return null;
		}
		$model = new saison_model();
		$model->saiidsai = $row['saiidsai'];
		$model->sailbnom = $row['sailbnom'];
		$model->saidtdeb = fromSQLDate($row['saidtdeb']);
		$model->saidtfin = fromSQLDate($row['saidtfin']);
		$model->sainbsem = $row['sainbsem'];
		return $model;
	}

	/**
	 * recupere tous les enregistrements
	 * @param $db connexion a la base de donnees
	 */
	static function getAllsaisons($db){
		$rows = getAllsaisonsFromDB($db);
		$records = array();
		foreach ($rows as $row) {
			$records[$row['saiidsai']] = saison_model::saison_modelFromRow($row);
		}
		return $records;
	}
	
	/**
	 * Recupere l'enregistrement a partir de son id
	 * @param $db connexion a la base de donnees
	 * @param $saiidsai identifiant de l'enregistrement a recuperer
	 */
	static function getsaison($db, $saiidsai){
		$row = getsaisonRow($db, $saiidsai);
		return saison_model::saison_modelFromRow($row);
	}
	
	/**
	 * Suppression d'un enregistrement
	 * @param $db connexion a la base de donnees
	 * @param $saiidsai identifiant de l'enregistrement a supprimer
	 */
	static function delete($db, $saiidsai){
		deletesaison($db, $saiidsai);
	}

	/**
	 * Enregistre en base un nouvel enregistrement
	 * @param $db connexion a la base de donnees
	 */
	public function save($db){
		$this->saiidsai = insertNewsaison($db, $this->sailbnom, toSQLDate($this->saidtdeb), toSQLDate($this->saidtfin), $this->sainbsem);
	}

	/**
	 * Mise a jour des donnees d'un enregistrement
	 * @param $db connexion a la base de donnees
	 */
	public function update($db){
		updatesaison($db, $this->saiidsai, $this->sailbnom, toSQLDate($this->saidtdeb), toSQLDate($this->saidtfin), $this->sainbsem);
	}

	
	/***************************************************************************
	 * USER DEFINED FUNCTIONS
	 ***************************************************************************/
	
	/**
	 * Recupere la saison actuelle, sysdate comprise entre les dates de la saison
	 * @param $db connexion a la base de donnees
	 */
	static function getCurrentSaison($db) {
		return saison_model::saison_modelFromRow(getCurrentSaisonRow($db));
	}
	
}

?>
